package tds.model15.version3;

import java.util.ArrayList;
import java.util.List;

/**
 * @Company 杭州先锋电子技术股份有限公司
 * @ClassName EventHandler
 * @Description 事件处理者
 * @author tds
 * @Date 2020/1/31 20:45
 * @version 1.0.0
 */
public class EventHandler {

    /**
     * 用一个list保存事件对象
     */
    private List<Event> objects;

    public EventHandler(){
        objects = new ArrayList<>();
    }

    /**
     * @Description 添加某个对象要执行的事件
     * @param obj
     * @param methodName
     * @param args
     * @return void
     */
    public synchronized void addEvent(Object obj, String methodName, Object... args){
        objects.add(new Event(obj, methodName, args));
    }

    /**
     * @Description 通知所有对象执行指定的事件
     * @param
     * @return void
     */
    public void notifyX() throws Exception {
        for (Event event : objects){
            event.invoke();
        }
    }
}
